Wroc_Adv_Stery:
 jsr Czysc_Sprity
 jmp Main_Petla_Adv

Adv_Stery:
 lda Control_Flag
 bne Wroc_Adv_Stery

 lda #$00
 sta VBlankOrNo 
WaitForVBlank22:
 lda VBlankOrNo ; A = VBlankOrNO
 cmp #1         ; if A == 1 then is VBlank
 bne WaitForVBlank22 ; if not VBlank, then loop and do again
 dec VBlankOrNo ; 1-- or VBlankOrNO - 1 . VBlankOrNo will be 0 again.

 jsr Czysc_Sprity

 lda Y_Velocity
 beq Adv_Stery1
 jmp Jump_Draw

Adv_Stery1:
 jsr KEYPAD

CHODZENIE2:

 lda Nacisn_guzik
 and #%00100000 ;sprawd czy nacinito Select
 cmp #%00100000
 bne bhebhe

Do_Plecak_ADV:
 lda Trzyma_guzik
 bne bhebhe

 jsr START_Plecak
 jmp Main_Petla_Adv

bhebhe
 lda Nacisn_guzik
 and #%10000010 ;sprawd czy nacinito A
 cmp #%10000010
 beq Jump_Jumping

 lda Nacisn_guzik
 and #%10000001 ;sprawd czy nacinito A
 cmp #%10000001
 beq Jump_Jumping

 lda Nacisn_guzik
 cmp #$00
 beq Jump_STOI2

 and #%00000011 ;sprawd czy nacinito Prawo i lewo jednoczenie
 cmp #%00000011
 beq PRAWO_LEWO

 and #%00000001 ;sprawd czy nacinito Prawo
 cmp #%00000001
 beq PRAWO2

 lda Nacisn_guzik
 and #%00000010 ;sprawd czy nacinito Lewo
 cmp #%00000010
 beq LEWO2

 lda Nacisn_guzik
 and #%10000000 ;sprawd czy nacinito A
 cmp #%10000000
 beq Jump_Jumping

 lda Nacisn_guzik
 and #%01000000 ;sprawd czy nacinito B
 cmp #%01000000
 beq Jump_Taking

Jump_STOI2:
 lda $90		;Sprawdza czy DIzzy jest w powietrzu
 bne Jump2_STOI2
 jmp Jump_Draw
Jump2_STOI2
 jmp STOI2

Jump_Jumping:
 jsr Rys_DizzyDisplay_STOP
 lda Trzyma_guzik
 beq Jump_Jumping2
 jmp Main_Petla_Adv

Jump_Jumping2:
 jmp Jumping

Jump_Taking:
 jsr Rys_DizzyDisplay_STOP

 lda Trzyma_guzik
 beq Jump_Taking2
 jmp Main_Petla_Adv

Jump_Taking2
 jmp Taking

PRAWO2:

 lda Temp3
 TAX
 lda $6122,X
 cmp #$C0
 bcs PRAWO_LEWO

 lda Temp3
 TAX
 lda $6142,X
 cmp #$C0
 bcs PRAWO_LEWO

 lda Nacisn_guzik
 and #%01000000 ;sprawd czy nacinito B
 cmp #%01000000
 bne PRAWO4

 lda Temp3
 TAX
 lda $6161,X
 cmp #$C0
 bcc PRAWO4

 inc Hero_X
PRAWO4:
 inc Hero_X

PRAWO_LEWO:
 lda $109
 clc
 adc #$08
 sta $109
 jsr Dizzy_Walk_Adv
 jmp Main_Petla_Adv

LEWO2:
 lda Temp3
 TAX
 lda $6120,X
 cmp #$C0
 bcs LEWO3

 lda Temp3
 TAX
 lda $6140,X
 cmp #$C0
 bcs LEWO3

 lda Nacisn_guzik
 and #%01000000 ;sprawd czy nacinito B
 cmp #%01000000
 bne LEWO4

 lda Temp3
 TAX
 lda $6161,X
 cmp #$C0
 bcc LEWO4

 dec Hero_X
LEWO4:
 dec Hero_X
LEWO3:
 lda $109
 clc
 adc #$08
 sta $109
 jsr Dizzy_Walk_Adv
 jmp Main_Petla_Adv
STOI2:
 jsr Rys_DizzyDisplay_STOP
 jmp Main_Petla_Adv

Rys_DizzyDisplay_STOP:
        ldx #$00   ;Ustaw 00 dla X przed wczytywaniem spritw

        lda #$00  ;Ustaw 00 dla licznika spritw
        sta $7F2
;**************************
        lda #$00  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Global_Adv
        cmp #$78
        bcc Rys.Postac_kont1_Adv

        lda Hero_Y
        clc
        adc #$01
        TAY

        jmp Czytaj_X1_Adv

Rys.Postac_kont1_Adv:
        ldy Hero_Y  ;Y

Czytaj_X1_Adv:
        ldx Hero_X  ;X

        lda #$10   ;ID

        jsr Rys4
;**************************
        lda #$0  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Global_Adv
        cmp #$78
        bcc Rys.Postac_kont2_Adv

        lda Hero_Y
        clc
        adc #$11
        TAY
        jmp Czytaj_X2_Adv

Rys.Postac_kont2_Adv:
        lda Hero_Y  ;Y
        clc
        adc #$10
        TAY
Czytaj_X2_Adv:
        ldx Hero_X  ;X

        lda #$12   ;ID

        jsr Rys5
;**************************
        lda #$01  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$12
        TAY

        ldx Hero_X  ;X

        lda #$13   ;ID
        jsr Rys5
;**************************
        lda #$01  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$06
        TAY

        lda Global_Adv
        cmp #$78
        bcc klatka1_LAPA1_Adv

        lda Hero_X
        sec
        sbc #$07
        TAX
        jmp Czytaj_ID4_Adv

klatka1_LAPA1_Adv:
        lda Hero_X  ;X
        sec
        sbc #$06
        TAX

Czytaj_ID4_Adv:
        lda #$14   ;ID
        jsr Rys1
;**************************
        lda #$41  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$06
        TAY

        lda Global_Adv
        cmp #$78
        bcc klatka1_LAPA2_Adv

        lda Hero_X
        clc
        adc #$0F
        TAX
        jmp Czytaj_ID5_Adv
klatka1_LAPA2_Adv:
        lda Hero_X  ;X
        clc
        adc #$0E
        TAX
Czytaj_ID5_Adv:
        lda #$14   ;ID
        jsr Rys1
;**************************
        rts
Dizzy_Walk_Adv:

        lda $109
        cmp #$3F
        bcc LAPY_PM_SKOK2
        cmp #$7E
        bcc LAPY_PL2
        cmp #$BD
        bcc LAPY_PH_SKOK2
        cmp #$FC
        bcc LAPY_PL2

        jmp Nogi_PostaciM2
;**************************
LAPY_PM_SKOK2:
        jmp LAPY_PM2
LAPY_PH_SKOK2:
        jmp LAPY_PH2
;**************************
LAPY_PL2:

        lda Nacisn_guzik
        and #%00000010 ;sprawd czy nacinito Lewo
        cmp #%00000010
        beq LAPY_LL2

        lda #$01  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$0A
        TAY

        lda Hero_X  ;X                                ;Druga klatka Animacji AP
        clc
        adc #$3
        TAX

        lda #$2C   ;ID
        jsr Rys1
        jmp Nogi_PostaciL2
LAPY_LL2:
        lda #$41  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$0A
        TAY

        lda Hero_X  ;X
        clc
        adc #$5
        TAX

        lda #$2C   ;ID
        jsr Rys1
        jmp Nogi_LEFTL2
;****************************
LAPY_PM2:
        lda Nacisn_guzik
        and #%00000010 ;sprawd czy nacinito Lewo
        cmp #%00000010
        beq LAPY_LM2

        lda #$01  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$0A
        TAY
                                                  ;Pierwsya klatka animacji ap
        lda Hero_X  ;X
        clc
        adc #$06
        TAX

        lda #$2D   ;ID
        jsr Rys1
        jmp Nogi_PostaciM2
LAPY_LM2:
        lda #$41  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$0A
        TAY

        lda Hero_X  ;X
        clc
        adc #$02
        TAX

        lda #$2D   ;ID
        jsr Rys1
        jmp Nogi_LEFTM2
;****************************
LAPY_PH2:
        lda Nacisn_guzik
        and #%00000010 ;sprawd czy nacinito Lewo
        cmp #%00000010
        beq LAPY_LH2

        lda #$01  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$0A
        TAY                                       ;Trzecia klatka ap

        lda Hero_X  ;X
        sec
        sbc #$01
        TAX

        lda #$2B   ;ID
        jsr Rys1
        jmp Nogi_PostaciH2
LAPY_LH2:
        lda #$41  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$0A
        TAY

        lda Hero_X  ;X
        clc
        adc #$09
        TAX

        lda #$2B   ;ID
        jsr Rys1
        jmp Nogi_LEFTH2
;****************************


WALK1H2:
        lda $109
        cmp #$3f
        bcc WALK1M2
        cmp #$7E
        bcc Walk_Klatka12
        cmp #$BD
        bcc WALK1Hpro2
        cmp #$FC
        bcc Walk_Klatka12

WALK1Hpro2:
        lda Hero_Y
        sec
        sbc $116

        clc
        adc #$1
        TAY
        sty $10B         ;Zapisz Y dla Y akcesori
        jmp WalkX12
WALK1M2:
        lda Hero_Y
        sec
        sbc $116

        sec
        sbc #$01
        TAY
        sty $10B         ;Zapisz Y dla Y akcesori

        jmp WalkX12

Walk_Klatka12:
        lda Hero_Y  ;Y

        sec
        sbc $116
        
        TAY
        
        sty $10B         ;Zapisz Y dla Y akcesori
WalkX12
        ldx Hero_X  ;X

        lda Nacisn_guzik
        and #%00000010 ;sprawd czy nacinito Lewo
        cmp #%00000010
        beq LEWO_WALK2

        lda #$00  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda #$20   ;ID
        clc
        adc $10A

        jsr Rys3
        jmp Spod_Postaci2
LEWO_WALK2:
        lda #$40  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda #$20   ;ID
        clc
        adc $10A  ;Dodaj ID Postaci

        jsr RysEX
;**************************
Spod_Postaci2:
        lda $109
        cmp #$3f
        bcc WALK2M2
        cmp #$7E
        bcc Walk_Klatka22
        cmp #$BD
        bcc WALK2H2
        cmp #$FC
        bcc Walk_Klatka22

WALK2H2:
        lda Hero_Y
        sec
        sbc $116

        clc
        adc #$11
        TAY
        jmp WalkX22
WALK2M2:
        lda Hero_Y
        sec
        sbc $116

        clc
        adc #$F
        TAY
        jmp WalkX22

Walk_Klatka22:
        lda Hero_Y  ;Y
        sec
        sbc $116

        clc
        adc #$10
        TAY
WalkX22
        ldx Hero_X  ;X


        lda #$00  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda #$24   ;ID

        jsr Rys5
 jmp KONIEC2
;**************************

Nogi_PostaciL2:
        lda #$01  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$12
        TAY

        lda Hero_X  ;X
        clc
        adc #$08
        TAX

        lda #$26   ;ID
        jsr Rys1

        lda #$01  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$12
        TAY

        ldx Hero_X  ;X

        lda #$25   ;ID
        jsr Rys1
        jmp WALK1H2
;--------------------------
Nogi_LEFTL2:
        lda #$1  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$12
        TAY

        lda Hero_X  ;X
        clc
        adc #$08
        TAX

        lda #$26   ;ID
        jsr Rys1

        lda #$01  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$12
        TAY

        ldx Hero_X  ;X

        lda #$25   ;ID
        jsr Rys1
        jmp WALK1H2

;**************************
Nogi_PostaciM2:
RYSUJ_NOGI_M2:

        lda #$01  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$12
        TAY

        ldx Hero_X  ;X

        lda #$27   ;ID
        jsr Rys2
        jmp WALK1H2
;**************************
Nogi_LEFTM2:
        lda #$41  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$12
        TAY

        ldx Hero_X  ;X

        lda #$28   ;ID
        jsr Rys1
        
        lda #$41  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$12
        TAY

        lda Hero_X  ;X
        clc
        adc #$08
        TAX

        lda #$27   ;ID
        jsr Rys1
        jmp WALK1H2
;**************************
Nogi_PostaciH2:

        lda #$01  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$12
        TAY

        lda Hero_X  ;X
        clc
        adc #$0A
        TAX

        lda #$2A   ;ID
        jsr Rys1

        lda #$1  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$12
        TAY

        lda Hero_X  ;X
        sec
        sbc #$02
        TAX

        lda #$29   ;ID
        jsr Rys1
        jmp WALK1H2
;**************************
Nogi_LEFTH2:
        lda #$41  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$12
        TAY

        lda Hero_X  ;X
        sec
        sbc #$02
        TAX

        lda #$2A   ;ID

        jsr Rys1

        lda #$41  ;Atryb
        clc
        adc Atryb_Tlo
        sta $7F0

        lda Hero_Y  ;Y
        clc
        adc #$12
        TAY

        lda Hero_X  ;X
        clc
        adc #$0A
        TAX

        lda #$29   ;ID

        jsr Rys1
        jmp WALK1H2

;--------------------------
KONIEC2:
        rts

RysEX:
        stx $7F1
        ldx $7F2

        sta $7F3
        sta $601,X  ;Zapisz ID
        clc
        adc #$01
        sta $605,X
        sta $7f3

        lda $7F1     ;Zapisz X
        sta $607,X
        clc
        adc #$08
        sta $603,X

        TYA         ;Zapisz Y
        sta $604,X
        sta $600,X

        lda $7F0     ;Zapisz Atrybut
        sta $606,X
        sta $602,X

        TXA
        clc
        adc #$08
        sta $7F2
;******************************************
        ldx $7F2    ;Ustaw X na ilo spritw

        lda $7F3
        clc
        adc #$01
        sta $601,X  ;Zapisz ID
        clc
        adc #$01
        sta $605,X

        lda $7F1     ;Zapisz X
        sta $607,X
        clc
        adc #$08
        sta $603,X

        TYA         ;Zapisz Y
        clc
        adc #$08
        sta $604,X
        sta $600,X

        lda $7F0     ;Zapisz Atrybut
        sta $606,X
        sta $602,X

        TXA
        clc
        adc #$08
        sta $7F2

	rts

Taking:
 jsr Pick_Items

 inc Trzyma_guzik

 jmp Main_Petla_Adv

Jumping:
 lda $90	;Sprawdza czy diz jets w powietrzu
 beq NO_Jumping
 dec $90	;Ustawia status byia w powietrzu(eby nie mg lata trzymajac A)

 lda #$26
 sta Y_Velocity

 lda #$26
 sta Anim_licznik	;Zainicjuj licznik Animacji...

 ldx #$00
 stx Anim_Zachowaj_X

 inc Trzyma_guzik

NO_Jumping:
 jmp Main_Petla_Adv

Jump_Draw:
 lda Anim_licznik
 cmp #$20
 bcc Jump_Draw1
 jsr Rys_DizzyDisplay_STOP
 jmp Main_Petla_Adv

Jump_Draw1:
 ldx #$00
 lda Ost,x ;Odczytaj na jakiej klatce ma si skoczy animacja
 cmp Anim_licznik
 bne kiku

 lda Anim_Ile_Kawalkow
 TAY
pokolo:
 inx
 inx
 inx
 inx
 inx
 dey
 cpy #$00
 bne pokolo
 stx Anim_Zachowaj_X

kiku:
 ldx #$01
 lda Ost,x ;Odczytaj ile kawakw ma odczyta
 sta Anim_Ile_Kawalkow

 jsr Skok_still1

Jump_Draw2:
 jmp Main_Petla_Adv

Skok_still1:


;--------------------
balbal:
 Dec Anim_Ile_Kawalkow

 ldx Anim_Zachowaj_X
 jsr Zapisuj_Koordynaty_SPR

 ASL A	;Adres jest podwjny,nie?
 TAX
 lda Adresy_Rysowania_Animacje_Adv,x
 sta Rys_skocz1
 inx
 lda Adresy_Rysowania_Animacje_Adv,x
 sta Rys_skocz2

 lda Anim_Atryb  ;Atryb
 clc
 adc Atryb_Tlo
 sta $7F0

 lda Anim_Y  ;Y
 cmp #$80
 bcs Anim_odejmujY
 clc
 adc Hero_Y
 TAY
 jmp Anim_Sprawdzaj_X

Anim_odejmujY:
 sec
 sbc #$80
 sta Anim_Y
 lda Hero_Y
 sec
 sbc Anim_Y
 TAY

Anim_Sprawdzaj_X:
 lda Anim_X  ;X
 cmp #$80
 bcs Anim_odejmujX
 clc
 adc Hero_X
 TAX
 jmp Anim_Laduj_ID

Anim_odejmujX:
 sec
 sbc #$80
 sta Anim_X
 lda Hero_X
 sec
 sbc Anim_X
 TAX

Anim_Laduj_ID:
 lda Anim_ID ;ID
 jsr Rys5

 lda Anim_Ile_Kawalkow
 bne balbal
 rts

Zapisuj_Koordynaty_SPR:
 lda Skok_Still_Data_Anim_ADV,x  ;Atryb
 sta Anim_Atryb

 inx

 lda Skok_Still_Data_Anim_ADV,x
 sta Anim_Y

 inx

 lda Skok_Still_Data_Anim_ADV,x
 sta Anim_X

 inx

 lda Skok_Still_Data_Anim_ADV,x
 sta Anim_ID

 inx

 lda Skok_Still_Data_Anim_ADV,x
 sta Anim_Rys

 inx
 stx Anim_Zachowaj_X
 rts
;----------------------
 .include "Adventure\Data_Animacji.txt"
